package com.example.demo.custom;

import cn.afterturn.easypoi.excel.ExcelImportUtil;
import cn.afterturn.easypoi.excel.entity.ImportParams;
import com.example.demo.entity.NewCar1;
import com.example.demo.entity.NewCar2;
import com.example.demo.excel.NewCar;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * @author Gong 导入Excel的集合控制器
 *      T Excel模板类
 *      ID 是类型integer
 *      G 大实体类
 *      H 小实体类
 */
public class BaseExcelInController<T,ID,G,H> {

    // T Excel模板类
    // ID 是类型integer
    // G 大实体类
    // H 小实体类
    @SuppressWarnings({ "unchecked" })
    private Class<G> clazz=GenericsUtils.getSuperClassGenricType(getClass());

    @SuppressWarnings({ "unchecked" })
    private Class<H> clazz2=GenericsUtils.getSuperClassGenricType(getClass());

    @Autowired
    private BaseRepository<G, ID> DAO1;

    @Autowired
    private BaseRepository<H, ID> DAO2;

//    //新车车型录入
//    @RequestMapping(value = "/newCarIn")
//    public void newCarIn(MultipartFile inFile) throws Exception {
//        ImportParams params = new ImportParams();
//        params.setTitleRows(1);//标题列站几行
//        params.setHeadRows(1);//header列站几行
//        List<T> testExcel = ExcelImportUtil.importExcel(inFile.getInputStream(), T.class, params);
////		testExcel.forEach(System.out::println);
//        for (T newCar : testExcel) {
//            G newCar2 =clazz.newInstance();
//            BeanUtils.copyProperties(newCar,newCar2,"name");
//
//            H newCar1 = clazz2.newInstance();
//            newCar1.setName(newCar.getName());
//            newCar2.setNewCar(newCar1);
//            DAO2.save(newCar2);
//        }
//    }
}
